home *** CD-ROM | disk | FTP | other *** search
-
- {
- PC-DOS standard input-output routines;
-
- enter with:
- bytes =number bytes to read into buffer;
- error =undefined;
- dtaseg=buffer segment;
- datofs= " offset;
-
-
- returns :
- bytes=number bytes actually read/written;
- error=00 :ok;
- 01 :attempt to read past end of file;
- 02 :bytes read<>bytes requested;
- -1 :bytes written<>bytes requested;
-
- (c) 1985 Renaissance Software
-
- }
-
-
-
- procedure stdread(var bytes,error : integer;
- dtaseg,dtaofs : integer);
-
- var
- register:record
- ax,bx,cx,dx,bp,si,di,ds,es,flags:integer;
- end;
-
- begin
- with register do begin
- ax:=$3F00;
- bx:=$0000;
- cx:=bytes;
- ds:=dtaseg;
- dx:=dtaofs;
- msdos(register);
- if (ax=bytes) then
- error:=$00
- else
- if (ax=0) then
- error:=$01
- else
- error:=$02;
- bytes:=ax;
- end;
- end; {stdread}
-
- {
- ---------------------------------------------------------------
- }
-
- procedure stdwrite(var bytes,error : integer;
- dtaseg,dtaofs : integer);
-
- var
- register:record
- ax,bx,cx,dx,bp,si,di,ds,es,flags:integer;
- end;
-
-
- begin
- with register do begin
- ax:=$4000;
- bx:=$0001;
- cx:=bytes;
- ds:=dtaseg;
- dx:=dtaofs;
- msdos(register);
- if (ax=bytes) then
- error:=$00
- else
- error:=$ffff;
- bytes:=ax;
- end;
- end; {stdwrite}
-
- {
- ---------------------------------------------------------------
- }